package configs

type ServerConfig struct {
	Port    int           `json:"port" env:"port" default:"8080"` // 启动端口
	Redis   RedisConfig   `json:"redis" env:"redis"`              // Redis配置
	Mysql   MysqlConfig   `json:"mysql" env:"mysql"`              // Mysql配置
	Elastic ElasticConfig `json:"es" env:"es"`                    // Elastic配置
}

type RedisConfig struct {
	Host     string `json:"host" env:"REDIS_HOST" required:"true"` // Redis地址
	Port     int    `json:"port" env:"REDIS_PORT" default:"6379"`  // Redis端口
	Password string `json:"password" env:"REDIS_PW" default:""`    // Redis密码
	DB       int    `json:"db" env:"REDIS_DB" default:"0"`
}

type MysqlConfig struct {
	Host     string `json:"host" env:"MYSQL_HOST" required:"true"`    // Mysql地址
	Port     int    `json:"port" env:"MYSQL_PORT" default:"3306"`     // Mysql端口
	DB       string `json:"db" env:"MYSQL_DB" default:"j60"`          // 数据库
	User     string `json:"user" env:"MYSQL_USER" default:"root"`     // Mysql用户
	Password string `json:"password" env:"MYSQL_PW" default:"123456"` // Mysql密码
}

type ElasticConfig struct {
	Addresses []string `json:"url" env:"ES_ADDRESS" required:"true"`
	Username  string   `json:"username" env:"ES_USERNAME" default:""`
	Password  string   `json:"password" env:"ES_PASSWORD" default:""`
}

var Config ServerConfig
